home *** CD-ROM | disk | FTP | other *** search
- 100 REM PROGRAM FOR GENETIC DRIFT
- 120 OPTION BASE 1
- 130 CLS:PRINT : CLEAR : GEN=1
- 135 RANDOMIZE: PRINT
- 140 INPUT "ENTER THE SIZE OF THE POPULATION";N%
- 150 PRINT
- 160 INPUT "ENTER THE SURVIVORSHIP PERCENTAGE (1 TO 100)";TP
- 170 SP=TP/100
- 190 DIM POP(N%+2)
- 200 FOR I=1 TO N%/2
- 210 POP(I)=0: NEXT
- 220 FOR I=(N%/2+1) TO N%
- 230 POP(I)=1:NEXT
- 240 PRINT: PRINT " GENERATION ";GEN:PRINT
- 250 GOSUB 900 'PRINT OUT POP. STRUCTURE
- 260 PICK%=SP*N% 'FIGURE # TO SURVIVE
- 270 SUMS=0:SUMT=0 'W-0, B-1
- 280 FOR I=1 TO PICK% 'LOOP TO CHOOSE SURVIVORS
- 290 REM KEEP COUNT OF TALLS AND SHORTS
- 300 IF POP(INT(RND(1)*N%)) THEN SUMT=SUMT + 1 ELSE SUMS=SUMS + 1
- 310 NEXT
- 320 'SET NEXT GENERATION
- 330 FOR I=1 TO INT(SUMS/SP)
- 340 POP(I)=0: NEXT
- 350 FOR I=INT(SUMS/SP)+1 TO N%
- 360 POP(I)=1: NEXT
- 365 IF INT(SUMS/SP)>N% THEN SUMS=N%/SP
- 370 ' PRINT OUT RESULTS
- 372 GEN=GEN+1
- 375 PRINT: PRINT" GENERATION";GEN
- 380 PRINT: PRINT INT(SUMS/SP);"SHORT INDIVIDUALS ";
- 390 PRINT N%-INT(SUMS/SP);" TALL INDIVIDUALS"
- 450 PRINT:GOSUB 900 'DISPLAY RESULTS
- 460 IF SUMT=0 OR SUMS=0 THEN GOTO 500 ELSE GOTO 270
- 500 PRINT:PRINT: PRINT "!!!!! HOMOZYGOUS FOR ONE GENE !!!!": PRINT: PRINT
- 505 PRINT "TYPE Y TO TRY ANOTHER RUN"
- 510 A$=INKEY$: IF A$="" THEN 510 ELSE 520
- 520 IF A$="Y" OR A$="y" THEN 130 ELSE END
- 900 ' DISPLAY SUBROUTINE
- 910 FOR I= 1 TO N%
- 920 IF POP(I)=0 THEN PRINT CHR$(1);:GOTO 940
- 930 IF POP(I)=1 THEN GOTO 950
- 940 NEXT
- 950 PRINT: PRINT
- 960 FOR J=I TO N%
- 970 PRINT CHR$(2);
- 980 NEXT: PRINT
- 990 FOR Z=1 TO 500: NEXT Z 'PAUSE FOR NEXT GENERATION
- 1000 RETURN
- T
- 960 FOR J=I TO N%
- 970 PRINT CHR$(2);
- 980 NEX